import axios from "axios"
import { ElMessage } from "element-plus"


const request =axios.create({
    baseURL:'http://localhost:8080',
    timeout:300000
})
//request拦截器,可以自请求发送前做一些处理
request.interceptors.request.use(config=>{
    if (!(config.data instanceof FormData)) {
        config.headers['Content-Type']='application/json;charset=utf-8'
      }
    const token = localStorage.getItem('token')
    if (token) {
        config.headers['token'] = token
    }
    //config.headers['Content-Type']='application/json;charset=utf-8'
    return config
},error=>{
    return Promise.reject(error)
})


//request拦截器,可以自请求发送后做一些处理
request.interceptors.response.use(
    response=>{
        let res=response.data;
        //兼容服务端返回的字符串数据
        if(typeof res==='string'){
            res=res? JSON.parse(res):res
        }
        return res
    },
    error=>{
        if(error.response.status===404){
            ElMessage.error("未找到请求接口")
        }
        else if(error.response.status===500){
            ElMessage.error("系统异常，请查看后端控制器报错")
        }
        // 响应拦截器：检测 token 过期情况
        else if (error.response && error.response.status === 401) {
            ElMessage.error('登录已过期，请重新登录')
            localStorage.removeItem('token')
            localStorage.removeItem('enterprise')
            localStorage.removeItem('admin')
            router.push('/home') // 跳转到首页
          }
        else{
            ElMessage.error(error.message)
        }
        return Promise.reject(error)
    }
    
)
export default request